﻿using Datos.Interfaces;
using Entidad;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;
using Dapper;
using DapperExtensions;

namespace Datos.Repositories
{
    public class CiudadRepository : ICiudadRepository
    {
        private readonly Microsoft.Practices.EnterpriseLibrary.Data.Database _db;

        static CiudadRepository()
        {
            //DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory(), false);
        }

        public CiudadRepository()
        {
            _db = DatabaseFactory.CreateDatabase("RealConnection");
        }

        public IList<Ciudad> FindAll()
        {
            using(IDbConnection conn = _db.CreateConnection())
            {
                const string query = "SELECT * FROM Ciudad";
                return conn.Query<Ciudad>(query).ToList();
            }
        }

        public IQueryable<Ciudad> Find(Expression<Func<Entidad.Ciudad, bool>> predicate)
        {
            throw new NotImplementedException();
        }

        public Ciudad FindById(int id)
        {
            throw new NotImplementedException();
        }

        public int Add(Ciudad newEntity)
        {
            throw new NotImplementedException();
        }

        public bool Remove(int id)
        {
            throw new NotImplementedException();
        }

        public int Modify(Ciudad entity)
        {
            throw new NotImplementedException();
        }
    }
}
